package cn.outsourcing.supermarket.vo.cart;

import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * 加入购物车时的 cartList 值对象
 *
 * <p>大部分数据从 cart 表中获取，最后一个重量计数，要从 product 表中获取单个物品的重量，然后与 number 相乘
 *
 * @author gzkemays
 * @since 2021/10/22 17=56
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class AddCartListVO {
  Integer id;
  Integer userId;
  Integer goodsId;
  /** 商品产品信息号 */
  String goodsSn;

  /** 产品信息id */
  Integer productId;

  /** 商品名 */
  String goodsName;

  /** product 产品信息的 goodsName */
  String goodsAka;
  /** 产品重量 product */
  Integer goodsWeight;

  BigDecimal addPrice;
  BigDecimal retailPrice;
  Integer number;
  /** goods规格表中的 value */
  String goodsSpecifitionNameValue;

  /** goods规格表的 id */
  String goodsSpecifitionIds;

  /** 未知 */
  Integer checked;
  /** goods 表中的图片 */
  String listPicUrl;

  /** goods 中配送的快递 */
  Integer freightTemplateId;
  /** goods 表中是否可销售 */
  Integer isOnSale;

  /** 当前时间戳 */
  Integer addTime;
  /** 作用于小程序是否显示，当 isfast 变为 1 时，delete 也要主动变为 delete */
  Integer isFast;
  /** 是否删除 */
  Integer isDelete;
  /** weight 是统计购物车购买数量 乘于 商品数量【product 表中的 goods_weight】 */
  Integer weightCount;
}
